home *** CD-ROM | disk | FTP | other *** search
- '**************************************************************************
- '* Install Toolkit DataBook
- '**************************************************************************
-
- ''DEBUG?
- '' '$DEFINE DEBUG ''Define for script development/debugging
-
- '$INCLUDE 'setupapi.inc'
- '$INCLUDE 'msdetect.inc'
- '$INCLUDE 'msvalid.inc'
-
-
- ''Dialog ID's =
- CONST WELCOME = 100
- CONST ASKQUIT = 200
- CONST DESTPATH = 300
- CONST IDOPATH = 370
- CONST AMIPATH = 380
- CONST WORDPATH = 390
- CONST EXITQUIT = 600
- CONST EXITSUCCESS = 700
- CONST OPTIONS = 800
- CONST APPHELP = 900
- CONST CHECK = 2500
- CONST TOOBIG = 6300
- CONST TOOBIG2 = 6350
- CONST BADPATH = 6400
- CONST BADVER = 6500
- CONST NETDRV = 6600
- CONST CDALREADYUSED = 7100
- CONST CNALREADYUSED = 7150
- CONST CDGETREG = 7200
- CONST CDBADREG = 7300
- CONST CDGETNAMEORG = 7500
- CONST CDBADNAME = 7700
- CONST CDNOTWRITABLE = 7900
-
-
- ''Bitmap ID (to appear in the background of the frame window)
- CONST LOGO = 1
-
-
- GLOBAL APPDEST$
- GLOBAL WORDMDEST$
- GLOBAL AMIMDEST$
- GLOBAL WINDRIVE$
-
- GLOBAL COST$
- GLOBAL recalc%
- GLOBAL cmd%
-
-
- ''CustInst list symbol names
- GLOBAL APPNEEDS$
- GLOBAL COSTDRV$
- GLOBAL CHECKWORD$
- GLOBAL CHECKAMI$
- GLOBAL CHECKLEX$
-
- DECLARE SUB RecalcFiles
- DECLARE SUB Install
- DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
-
-
- INIT:
- CUIDLL$ = "mscuistf.dll" ''Custom user interface dll
- HELPPROC$ = "FHelpDlgProc" ''Help dialog procedure
-
- SetBitmap CUIDLL$, LOGO
- SetTitle "INSTALL: DataBook Universalw÷rterbuch Englisch"
- SetAbout "Install Version 3.1 CD","⌐ 1992-1996 Electronic Publishing Partners"
-
- ''Path and name of the specific .INF file
- szInf$ = GetSymbolValue("STF_SRCINFPATH")
- IF szInf$ = "" THEN
- szInf$ = GetSymbolValue("STF_CWDDIR") + "GDLEXX.INF"
- END IF
- ReadInfFile szInf$
-
- ''Disk cost list symbols
- APPNEEDS$ = "AppNeeds"
- COSTDRV$ = ""
- COST$ = ""
- CHECKLEX$ = "CheckLex"
- AddListItem CHECKLEX$, "ON"
- AddListItem CHECKLEX$, "OFF"
- CHECKWORD$ = "CheckWord"
- AddListItem CHECKWORD$, "?"
- CHECKAMI$ = "CheckAmi"
- AddListItem CHECKAMI$, "?"
-
- WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
- cmd%=0
-
- APPDEST$ = WINDRIVE$ + ":\LEXIKA"
-
- WORDMDEST$ = GetIniKeyString(MakePath(GetWindowsDir,"WINWORD6.INI"),"Microsoft Word","USER-DOT-PATH")
- if WORDMDEST$ = "" THEN
- WORDMDEST$ = GetIniKeyString("WIN.INI","Microsoft Word 2.0","programdir")
- ENDIF
- if WORDMDEST$ = "" THEN
- WORDMDEST$ = GetIniKeyString("WIN.INI","Microsoft Word 6.0","programdir")
- ENDIF
- if WORDMDEST$ = "" THEN
- WORDMDEST$ = GetIniKeyString("WIN.INI","winword","programdir")
- ENDIF
- if WORDMDEST$ = "" THEN
- WORDMDEST$ = APPDEST$
- ENDIF
- IF IsDirWritable(WORDMDEST$) = 0 THEN
- WORDMDEST$ = APPDEST$
- ENDIF
-
- AMIMDEST$ = GetIniKeyString(MakePath(GetWindowsDir,"AMIPRO.INI"),"AmiPro","macrodir")
- if AMIMDEST$ = "" THEN
- AMIMDEST$ = APPDEST$
- ENDIF
- IF IsDirWritable(AMIMDEST$) = 0 THEN
- AMIMDEST$ = APPDEST$
- ENDIF
-
- RecalcFiles
- first%=1 ''first Recalc - BOOL
-
-
- WELCOME:
- SetSymbolValue "DlgTitle", "DataBook Universalw÷rterbuch Englisch"
- sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
- IF sz$ = "CONTINUE" THEN
- IF (GetWindowsMajorVersion() < 3) THEN
- n%=0
- ELSEIF (GetWindowsMajorVersion() > 3) THEN
- n%=1
- ELSEIF (GetWindowsMinorVersion() < 10) THEN
- n%=0
- ELSE
- n%=1
- END IF
- IF (n%=0) THEN
- UIPop(1)
- GOTO BADVER
- END IF
-
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- UIPop 1
- ELSE
- GOSUB ASKQUIT
- GOTO WELCOME
- END IF
-
-
- GETPATH:
- SetSymbolValue "EditTextIn", APPDEST$
- SetSymbolValue "EditFocus", "END"
- opt$=GetSymbolValue(CHECKLEX$)
- SetSymbolValue "CheckItemsIn", opt$
- GETPATHL1:
- sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FCheckDlgProc", APPHELP, HELPPROC$)
- newopt$ = GetSymbolValue ("CheckItemsOut")
- IF sz$ = "CONTINUE" THEN
- IF newopt$ <> opt$ THEN
- SetSymbolValue CHECKLEX$, newopt$
- recalc%=1
- END IF
- olddest$ = APPDEST$
- APPDEST$ = GetSymbolValue("EditTextOut")
- cmd%=IsCmd(APPDEST$)
- if (cmd% <> 0) then
- APPDEST$ = CutCmd(APPDEST$)
- endif
- IF IsDirWritable(APPDEST$) = 0 THEN
- GOSUB BADPATH
- recalc% = 1
- APPDEST$ = olddest$
- GOTO GETPATHL1
- END IF
- IF DriveOk = 0 AND cmd%<>1 AND IsDriveOk(MID$(APPDEST$, 1, 1) ) = 1 THEN
- GOSUB NETDRV
- recalc% = 1
- APPDEST$ = olddest$
- GOTO GETPATHL1
- ENDIF
-
- ''Recalc if path changed.
- IF (olddest$ <> APPDEST$) OR (recalc%=1) THEN
- if WORDMDEST$ = olddest$ THEN
- WORDMDEST$ = APPDEST$
- ENDIF
- if AMIMDEST$ = olddest$ THEN
- AMIMDEST$ = APPDEST$
- ENDIF
- RecalcFiles
- END IF
-
- IF COSTDRV$ = "YES" THEN
- GOSUB TOOBIG
- recalc% = 1
- GOTO GETPATHL1
- ELSEIF COSTDRV$ <> "" THEN
- GOSUB TOOBIG2
- recalc% = 1
- GOTO GETPATHL1
- END IF
- UIPop 1
- ELSEIF sz$ = "REACTIVATE" THEN
- RecalcFiles
- GOTO GETPATHL1
- ELSEIF sz$ = "BACK" THEN
- APPDEST$ = GetSymbolValue("EditTextOut")
- UIPop 1
- GOTO WELCOME
- ELSE
- GOSUB ASKQUIT
- GOTO GETPATH
- END IF
-
-
- WORDPATH:
- IF GetListItem (CHECKWORD$,1) = "?" THEN
- ReplaceListItem CHECKWORD$,1,"ON"
- ENDIF
- SetSymbolValue "EditTextIn", WORDMDEST$
- SetSymbolValue "EditFocus", "END"
- opt$=GetSymbolValue (CHECKWORD$)
- SetSymbolValue "CheckItemsIn", opt$
- WORDPATH1:
- sz$ = UIStartDlg(CUIDLL$, WORDPATH, "FCheckDlgProc", APPHELP, HELPPROC$)
- newopt$ = GetSymbolValue("CheckItemsOut")
- IF sz$ = "CONTINUE" THEN
- IF newopt$ <> opt$ THEN
- SetSymbolValue CHECKWORD$, newopt$
- END IF
- olddest$ = WORDMDEST$
- WORDMDEST$ = GetSymbolValue("EditTextOut")
-
- IF MID$(WORDMDEST$, LEN(WORDMDEST$), 1) <> "\" THEN
- WORDMDEST$=WORDMDEST$ + "\"
- END IF
-
- IF IsDirWritable(WORDMDEST$) = 0 THEN
- GOSUB BADPATH
- recalc% = 1
- GOTO WORDPATH1
- END IF
-
- ''Recalc if path changed.
- IF (newopt$ <> opt$) OR (olddest$ <> WORDMDEST$) OR (recalc%=1) THEN
- RecalcFiles
- END IF
- opt$=newopt$
-
- IF COSTDRV$ = "YES" THEN
- GOSUB TOOBIG
- recalc% = 1
- GOTO WORDPATH1
- ELSEIF COSTDRV$ <> "" THEN
- GOSUB TOOBIG2
- recalc% = 1
- GOTO WORDPATH1
- END IF
- UIPop 1
- ELSEIF sz$ = "REACTIVATE" THEN
- RecalcFiles
- GOTO WORDPATH1
- ELSEIF sz$ = "BACK" THEN
- WORDMDEST$ = GetSymbolValue("EditTextOut")
- UIPop 1
- GOTO GETPATH
- ELSE
- GOSUB ASKQUIT
- GOTO WORDPATH
- END IF
-
-
- AMIPATH:
- IF (GetListItem (CHECKAMI$,1) = "?") THEN
- ReplaceListItem CHECKAMI$,1,"ON"
- ENDIF
- SetSymbolValue "EditTextIn", AMIMDEST$
- SetSymbolValue "EditFocus", "END"
- opt$=GetSymbolValue (CHECKAMI$)
- SetSymbolValue "CheckItemsIn", opt$
- AMIPATH1:
- sz$ = UIStartDlg(CUIDLL$, AMIPATH, "FCheckDlgProc", APPHELP, HELPPROC$)
- newopt$ = GetSymbolValue("CheckItemsOut")
- IF sz$ = "CONTINUE" THEN
- IF newopt$ <> opt$ THEN
- SetSymbolValue CHECKAMI$, newopt$
- END IF
- olddest$ = AMIMDEST$
- AMIMDEST$ = GetSymbolValue("EditTextOut")
-
- IF MID$(AMIMDEST$, LEN(AMIMDEST$), 1) <> "\" THEN
- AMIMDEST$=AMIMDEST$ + "\"
- END IF
-
- IF IsDirWritable(AMIMDEST$) = 0 THEN
- GOSUB BADPATH
- recalc% = 1
- GOTO AMIPATH1
- END IF
- ''Recalc if path changed.
- IF (newopt$ <> opt$) OR (olddest$ <> AMIMDEST$) OR (recalc%=1) THEN
- RecalcFiles
- END IF
- opt$=newopt$
-
- IF COSTDRV$ = "YES" THEN
- GOSUB TOOBIG
- recalc% = 1
- GOTO AMIPATH1
- ELSEIF COSTDRV$ <> "" THEN
- GOSUB TOOBIG2
- recalc% = 1
- GOTO AMIPATH1
- END IF
- UIPop 1
- ELSEIF sz$ = "REACTIVATE" THEN
- RecalcFiles
- GOTO AMIPATH1
- ELSEIF sz$ = "BACK" THEN
- AMIMDEST$ = GetSymbolValue("EditTextOut")
- UIPop 1
- GOTO WORDPATH
- ELSE
- GOSUB ASKQUIT
- GOTO AMIPATH
- END IF
-
-
-
- Install
-
- ''--------------------------------------------------------------------------
-
-
- QUIT:
- ON ERROR GOTO ERRQUIT
-
- IF ERR = 0 THEN
- dlg% = EXITSUCCESS
- proc$ = "FExitDlgProc"
- ''ELSEIF ERR = STFQUIT THEN
- '' dlg% = EXITQUIT
- '' proc$= "FInfo0DlgProc"
- ELSE
- dlg% = EXITQUIT
- proc$= "FInfo0DlgProc"
- END IF
- QUITL1:
- sz$ = UIStartDlg(CUIDLL$, dlg%, proc$, 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO QUITL1
- END IF
- UIPop 1
-
- END
-
- ERRQUIT:
- i% = DoMsgBox("Quelldateien fehlerhaft! Benachrichtigen Sie Ihren ProdukthΣndler.", "DataBook Universalw÷rterbuch Englisch", MB_OK+MB_TASKMODAL+MB_ICONHAND)
- END
-
- CDALREADYUSED:
- CDALREADYUSED1:
- sz$ = UIStartDlg(CUIDLL$, CDALREADYUSED, "FTextDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO CDALREADYUSED1
- END IF
- UIPop 1
- END
-
- BADVER:
- sz$ = UIStartDlg(CUIDLL$, BADVER, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO BADVER
- END IF
- UIPop 1
- END
-
- BADPATH:
- sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO BADPATH
- END IF
- UIPop 1
- RETURN
-
-
- NETDRV:
- SetSymbolValue "DlgTitle", ""
- sz$ = UIStartDlg(CUIDLL$, NETDRV, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO NETDRV
- END IF
- UIPop 1
- SetSymbolValue "DlgTitle", "DataBook Universalw÷rterbuch Englisch"
- RETURN
-
-
- CDBADNAME:
- sz$ = UIStartDlg(CUIDLL$, CDBADNAME, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO CDBADNAME
- END IF
- UIPop 1
- RETURN
-
-
- NOTWRITABLE:
- sz$ = UIStartDlg(CUIDLL$, CDNOTWRITABLE, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- GOTO NOTWRITABLE
- END IF
- UIPop 1
- RETURN
-
-
-
- TOOBIG:
- sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- RecalcFiles
- GOTO TOOBIG
- END IF
- UIPop 1
- RETURN
-
- TOOBIG2:
- SetSymbolValue "DlgTitle", ""
- SetSymbolValue "OldName", COST$
- SetSymbolValue "OldOrg", COSTDRV$
- TOOBIG21:
- sz$ = UIStartDlg(CUIDLL$, TOOBIG2, "FTextDlgProc", 0, "")
- IF sz$ = "REACTIVATE" THEN
- RecalcFiles
- GOTO TOOBIG21
- END IF
- UIPop 1
- ''xxx
- SetSymbolValue "DlgTitle", "DataBook Universalw÷rterbuch Englisch"
- RETURN
-
-
- ASKQUIT:
- sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
-
- IF sz$ = "EXIT" THEN
- UIPopAll
- ERROR STFQUIT
- ELSEIF sz$ = "REACTIVATE" THEN
- GOTO ASKQUIT
- ELSE
- UIPop 1
- END IF
- RETURN
-
-
-
- '**
- '** Purpose:
- '** Appends a file name to the end of a directory path,
- '** inserting a backslash character as needed.
- '** Arguments:
- '** szDir$ - full directory path (with optional ending "\")
- '** szFile$ - filename to append to directory
- '** Returns:
- '** Resulting fully qualified path name.
- '*************************************************************************
- FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
- IF szDir$ = "" THEN
- MakePath = szFile$
- ELSEIF szFile$ = "" THEN
- MakePath = szDir$
- ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
- MakePath = szDir$ + szFile$
- ELSE
- MakePath = szDir$ + "\" + szFile$
- END IF
- END FUNCTION
-
-
- '**
- '** Purpose:
- '** Recalculates disk space for the given option files and sets
- '** the status info symbol "StatusItemsText".
- '** Arguments:
- '** ftype% - type of files to add, one of the following:
- '** APPFILES, OPTFILES1, OPTFILES2
- '** Returns:
- '** none.
- '*************************************************************************
- SUB RecalcFiles STATIC
- CursorSave% = ShowWaitCursor()
-
- ClearCopyList
-
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- AddSectionFilesToCopyList "Prog", SrcDir$, APPDEST$
- IF GetListItem(CHECKLEX$, 2) = "ON" THEN
- AddSectionFilesToCopyList "Lexika", SrcDir$, APPDEST$
- END IF
-
- IF GetListItem(CHECKAMI$, 1) = "ON" THEN
- AddSectionFilesToCopyList "AmiPro", SrcDir$, AMIMDEST$
- ENDIF
- IF GetListItem(CHECKWORD$, 1) = "ON" THEN
- AddSectionFilesToCopyList "Word", SrcDir$, WORDMDEST$
- ENDIF
-
- ListSym$ = APPNEEDS$
- StillNeed& = GetCopyListCost("1024", ListSym$, "")
-
- lcost&=0
- IF StillNeed& > 0 THEN
- appdrv$=MID$(APPDEST$, 1, 1)
- ndrive% = ASC(ucase$(appdrv$)) - ASC("A") + 1
- lcost& = VAL(GetListItem(ListSym$, ndrive%))
- IF lcost& > 0 THEN
- COST$ = STR$(lcost& / 1024) + " KB"
- COSTDRV$ = appdrv$+":"
- lcost&=-1
- END IF
-
- AmiProDrive$=MID$(AMIMDEST$, 1, 1)
- IF (lcost&<> -1) AND (AmiProDrive$ <> MID$(APPDEST$, 1, 1)) THEN
- ndrive% = ASC(ucase$(AmiProDrive$)) - ASC("A") + 1
- lcost& = VAL(GetListItem(ListSym$, ndrive%))
- END IF
- IF lcost& > 0 THEN
- COST$ = STR$(lcost& / 1024) + " KB"
- COSTDRV$ = AmiProDrive$+":"
- lcost&=-1
- END IF
-
- WordDrive$=MID$(WORDMDEST$, 1, 1)
- IF (lcost&<> -1) AND (WordDrive$ <> MID$(APPDEST$, 1, 1)) THEN
- ndrive% = ASC(ucase$(WordDrive$)) - ASC("A") + 1
- lcost& = VAL(GetListItem(ListSym$, ndrive%))
- END IF
- IF lcost& > 0 THEN
- COST$ = STR$(lcost& / 1024) + " KB"
- COSTDRV$ = WordDrive$+":"
- lcost&=-1
- END IF
- IF (lcost& <> -1) THEN
- COSTDRV$ = "YES"
- END IF
- ELSE
- COSTDRV$ = ""
- END IF
-
- RestoreCursor CursorSave%
- ListSym$ = ""
- recalc% = 0
- END SUB
-
-
- '**
- '** Purpose:
- '** Builds the copy list and performs all installation operations.
- '** Arguments:
- '** none.
- '** Returns:
- '** none.
- '*************************************************************************
- SUB Install STATIC
-
- SrcDir$ = GetSymbolValue("STF_SRCDIR")
- CreateDir APPDEST$, cmoNone
- CreateDir AMIMDEST$, cmoNone
- CreateDir WORDMDEST$, cmoNone
-
- OpenLogFile MakePath(APPDEST$, "INSTALL.STF"), 0
- WriteToLogFile ""
- WriteToLogFile " Gdlexx: '" + APPDEST$ + "'"
- WriteToLogFile " AmiPro: " +GetSymbolValue (CHECKAMI$)+" '"+ AMIMDEST$ + "'"
- WriteToLogFile " Word: " +GetSymbolValue (CHECKWORD$)+" '" + WORDMDEST$ + "'"
- WriteToLogFile ""
-
- i% = SetSizeCheckMode(scmOnIgnore)
- CopyFilesInCopyList
-
- IF MID$(APPDEST$, LEN(APPDEST$), 1) <> "\" THEN
- APPDEST$=APPDEST$ + "\"
- END IF
-
- CreateProgmanGroup "DataBook", "", cmoNone
- ShowProgmanGroup "DataBook", 1, cmoNone
- CreateProgmanItem "DataBook", "Universalw÷rterbuch Englisch", MakePath(APPDEST$,"DATABOOK.EXE UEnglisch"), "", cmoOverwrite
-
- ini$=MakePath(APPDEST$, "databook.cfg")
- IF GetListItem(CHECKLEX$, 2) = "ON" THEN
- CreateIniKeyValue ini$,"DATABOOK","Current",LCASE$(MakePath(APPDEST$, "de_uws.lex")),cmoOverwrite
- CreateIniKeyValue ini$,"DATABOOK","Dic1",LCASE$(MakePath(APPDEST$, "de_uws.lex")),cmoOverwrite
- CreateIniKeyValue ini$,"DATABOOK","Dic2",LCASE$(MakePath(APPDEST$, "ed_uws.lex")),cmoOverwrite
- CreateIniKeyValue ini$,"UEnglisch","Current",LCASE$(MakePath(APPDEST$, "de_uws.lex")),cmoOverwrite
- CreateIniKeyValue ini$,"UEnglisch","Dic1",LCASE$(MakePath(APPDEST$, "de_uws.lex")),cmoOverwrite
- CreateIniKeyValue ini$,"UEnglisch","Dic2",LCASE$(MakePath(APPDEST$, "ed_uws.lex")),cmoOverwrite
- ELSE
- CreateIniKeyValue ini$,"DATABOOK","Current",LCASE$(MakePath(SrcDir$, "de_uws.lex")),cmoOverwrite
- CreateIniKeyValue ini$,"DATABOOK","Dic1",LCASE$(MakePath(SrcDir$, "de_uws.lex")),cmoOverwrite
- CreateIniKeyValue ini$,"DATABOOK","Dic2",LCASE$(MakePath(SrcDir$, "ed_uws.lex")),cmoOverwrite
- CreateIniKeyValue ini$,"UEnglisch","Current",LCASE$(MakePath(SrcDir$, "de_uws.lex")),cmoOverwrite
- CreateIniKeyValue ini$,"UEnglisch","Dic1",LCASE$(MakePath(SrcDir$, "de_uws.lex")),cmoOverwrite
- CreateIniKeyValue ini$,"UEnglisch","Dic2",LCASE$(MakePath(SrcDir$, "ed_uws.lex")),cmoOverwrite
- END IF
-
- IF DoesDirExist(SrcDir$+"8BPR196S\") = 1 THEN
- CreateProgmanItem "DataBook", "VerlagsprΣsentation", MakePath(SrcDir$+"8BPR196S\","rossi.exe"), "", cmoOverwrite
- ENDIF
-
-
- CloseLogFile
- IF ERR = 0 THEN
- RemoveFile MakePath(APPDEST$, "INSTALL.STF"), cmoNone
- END IF
-
- END SUB
-
-